home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Cream of the Crop 26
/
Cream of the Crop 26.iso
/
program
/
ddj0897.zip
/
DYNACE.ASC
< prev
next >
Wrap
Text File
|
1997-06-20
|
1KB
|
74 lines
_Advanced Object-Oriented Features for C/C++_
by Blake McBride
Example 1:
defclass Person { /* Define class */
char name[30]; /* Private instance variables */
int age;
class:
int numberOfPeople; /* Private class variables */
};
imeth SetName(char *nm) { /* Define method */
strcpy(name, nm);
return self;
}
imeth char *GetName() {
return name;
}
cmeth int GetNumberOfPeople() {
return numberOfPeople;
}
Example 2:
void myfun() {
object obj;
char *str;
obj = New(Person);
SetName(obj, "Blake");
str = GetName(obj);
}
Example 3:
typedef struct {
char name[30];
int age;
} Person;
void *NewPerson() {
return malloc(sizeof(Person));
}
void SetName(void *p, char *nm) {
strcpy(((Person *)p)->name, nm);
}
char *GetName(void *p) {
return ((Person *)p)->name;
}
Example 4:
void fun() {
void *p;
char *str;
p = NewPerson();
SetName(p, "Blake");
str = GetName(p);
}
Example 5:
int SetName(object obj, char *a)
{
int (*meth)();
meth = find_method(ClassOf(obj), SetName_object);
return meth(obj,a);
}